package org.wzy.spring.framework.webmvc.servlet;

import lombok.Data;

import java.lang.reflect.Method;
import java.util.regex.Pattern;

/**
 * 模拟 SpringMVC HandlerMapping 接口实现
 * HandlerMapping 的作用就是将 Controller 中的 RequestMapping 与 Method 建立对应关系
 *
 * @author 王政豫
 * @date 2018/5/22 14:43
 */
@Data
class HandlerMapping {

    /**
     * 此 HandlerMapping 映射的 Controller
     */
    private Object controller;

    /**
     * 此 HandlerMapping 映射的 method
     */
    private Method method;

    /**
     * 对 url 的封装, 可以根据此 url 找到对应的 HandlerMapping
     */
    private Pattern pattern;

    HandlerMapping(Pattern pattern, Object controller, Method method) {
        this.controller = controller;
        this.method = method;
        this.pattern = pattern;
    }
}
